package cc.rengu.igas.momp.facade;

import cc.rengu.igas.momp.facade.request.*;
import cc.rengu.igas.momp.facade.response.*;
import cc.rengu.igas.momp.facade.result.Result;

/**
 * 支付接口
 *
 * @author Jinan Liu
 * @date 2020/3/12 00:09
 */
public interface PaymentService {

    /**
     * (合并)支付接口
     *
     * @param comboPaymentRequest (合并)支付接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.ComboPaymentResponse> (合并)支付接口应答对象
     * @author Jinan Liu
     * @date 2020/4/24 16:31
     */
    Result<ComboPaymentResponse> comboPayment(ComboPaymentRequest comboPaymentRequest);

    /**
     * (合并)支付冲正接口
     *
     * @param comboPaymentReversalRequest (合并)支付冲正接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.ComboPaymentReversalResponse> (合并)支付冲正接口应答对象
     * @author Jinan Liu
     * @date 2020/4/24 16:20
     */
    Result<ComboPaymentReversalResponse> comboPaymentReversal(ComboPaymentReversalRequest comboPaymentReversalRequest);

    /**
     * (合并)支付退货接口
     *
     * @param comboPaymentRefundRequest (合并)支付退货接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.ComboPaymentRefundResponse> (合并)支付退货接口应答对象
     * @author Jinan Liu
     * @date 2020/4/24 16:20
     */
    Result<ComboPaymentRefundResponse> comboPaymentRefund(ComboPaymentRefundRequest comboPaymentRefundRequest);

    /**
     * 手续费优惠接口
     *
     * @param comboMchntFeeDiscountRequest 手续费优惠接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.ComboMchntFeeDiscountResponse> 手续费优惠接口应答对象
     * @author Jinan Liu
     * @date 2020/4/24 16:20
     */
    Result<ComboMchntFeeDiscountResponse> comboMchntFeeDiscount(ComboMchntFeeDiscountRequest comboMchntFeeDiscountRequest);

    /**
     * 手续费优惠冲正接口
     *
     * @param comboMchntFeeDiscountReversalRequest 手续费优惠冲正接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.ComboMchntFeeDiscountReversalResponse> 手续费优惠冲正接口应答对象
     * @author Jinan Liu
     * @date 2020/4/24 16:20
     */
    Result<ComboMchntFeeDiscountReversalResponse> comboMchntFeeDiscountReversal(ComboMchntFeeDiscountReversalRequest comboMchntFeeDiscountReversalRequest);

    /**
     * 手续费优惠回退接口
     *
     * @param comboMchntFeeDiscountRefundRequest 手续费优惠回退接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.ComboMchntFeeDiscountRefundResponse> 手续费优惠回退接口应答对象
     * @author Jinan Liu
     * @date 2020/4/24 16:20
     */
    Result<ComboMchntFeeDiscountRefundResponse> comboMchntFeeDiscountRefund(ComboMchntFeeDiscountRefundRequest comboMchntFeeDiscountRefundRequest);

    /**
     * 手续费优惠回退试算接口
     *
     * @param comboMchntFeeDiscountTrialRefundRequest 手续费优惠回退试算接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.ComboMchntFeeDiscountTrialRefundResponse> 手续费优惠回退试算接口应答对象
     * @author Jinan Liu
     * @date 2020/4/24 16:22
     */
    Result<ComboMchntFeeDiscountTrialRefundResponse> comboMchntFeeDiscountTrialRefund(ComboMchntFeeDiscountTrialRefundRequest comboMchntFeeDiscountTrialRefundRequest);


    /**
     * 交易调账接口
     *
     * @param txnDataRegulationRequest 交易调账接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.TxnDataRegulationResponse> 交易调账接口应答对象
     * @author Jinan Liu
     * @date 2020/6/14 10:26
     */
    Result<TxnDataRegulationResponse> txnDataRegulation(TxnDataRegulationRequest txnDataRegulationRequest);

    /**
     * 交易调账结果查询
     *
     * @param queryTxnRegulationResultRequest 交易调账结果查询接口请求对象
     * @return cc.rengu.igas.momp.facade.result.Result<cc.rengu.igas.momp.facade.response.QueryTxnRegulationResultResponse> 交易调账结果查询接口应答对象
     * @author Jinan Liu
     * @date 2020/6/17 17:45
     */
    Result<QueryTxnRegulationResultResponse> queryTxnRegulationStatus(QueryTxnRegulationResultRequest queryTxnRegulationResultRequest);
}
